简介

Apache JMeter 是100%纯java语言开发的负载测试和性能测试开源工具。

建立测试计划(Test Plan)

测试计划描述了执行测试过程中JMeter的执行过程和步骤,一个完整的测试计划包括一个或者多个线程组(Thread Groups)、逻辑控制(Logic Controller)、实例产生控制器(Sample Generating Controllers)、侦听器(Listener)、定时器(Timer)、比较(Assertions)、配置元素(Config Elements)。打开JMeter时,它已经建立一个默认的测试计划,一个JMeter应用的实例只能建立或者打开一个测试计划。

实战

建立WebAPI 测试配置

模拟步骤分析:

  1. 用户登录配置
  2. 模拟N个用户并发访问WebAPI接口资源

用户登录配置

  • 选中测试计划 -> 右键添加 -> Threads (Users) -> 线程组
  • 选中线程组 -> 右键添加 -> 配置元件 -> HTTP Cookie 管理器

HTTP Cookie 管理器

HTTP Cookies 管理器:管理测试计划中运行时的所有Cookie。HTTP Cookie Manager可以自动储存服务器发送给客户端的所有Cookie,并在发送请求的时候附带合适的Cookie

  • 选中线程组 -> 右键添加 -> 逻辑控制器 -> 仅一次控制器

  • 选中仅一次控制器 -> 右键添加 -> Sampler -> HTTP请求

image

模拟用户登录行为,注意到Parameters -> 名称(username) 的值为 ${__CSVRead(LoginID.txt,0)}
该部分为读取当前主程序目录下LoginID.txt文件 第一个字符串的值作为username的值进行请求

对于CSVRead 函数使用可以查看官方文档
http://jmeter.apache.org/usermanual/functions.html#__CSVRead

  • 选中HTTP请求 -> 右键添加 -> 后置处理 -> 正则表达式提取器
  • 选中线程组 -> 右键添加 -> 监听器 -> 察看结果树

察看结果树

模拟N个用户并发访问WebAPI接口资源

  • 选中线程组 -> 右键添加 -> Sampler -> HTTP请求

填入WebAPI接口请求需要的参数信息,并带入步骤1的Cookies 信息

  • 选中HTTP请求 -> 右键添加 -> 配置元件 -> HTTP信息头管理器

输入需要的请求头信息:

JMeter HTTP信息头管理器

其中${TGT} 为步骤1 提取的用户Cookies信息的存储变量名,这里会将步骤1提取出来的信息附加进去

现在已经完成了用户登录配置和访问WebAPI接口资源的配置!

image

可以通过调整线程组配置进行模拟用户访问频率方式来访问接口

JMeter Plugins 插件

可以通过访问JMeterPlugin网站,来扩展JMeter 工具的测试能力

下载Plugins Manager ,下载 plugins-manager.jar 放置在 lib/ext 目录下然后重启 JMeter

Plugins Manager

在选项下出现 Plugins Manager 功能项

PerfMon Server Agent 插件说明

配合
Servers Performance Monitoring 插件使用,运行服务端的代理。用于传输服务端的(CPU、内存、IO、网络等信息)

PerfMon Server Agent 插件使用

服务端启动

访问JMeterPlugin网站 搜索PerfMon Server Agent 插件,下载ServerAgent-2.2.1.zip 安装包

1
2
3
4
5
# Unix 系统启动
$ startAgent.sh

# Windows 系统启动
$ startAgent.bat

启动ServerAgent

Windows 系统启动效果

客户端启动

Servers Performance Monitoring (服务器监控-客户端) 该插件可以用于监控服务端的负载情况包括CPU、内存、IO、网络等信息。

使用

Servers Performance Monitoring

  • 打开JMeter -> 选择[选项] -> 打开 Plugins Manager

  • 选中Available Plugins -> 在左边菜选中” PerfMon (Servers Performance Monitoring)
    -> 点击Apply Changes and Restart JMeter

  • 选中线程组 -> 右键添加 -> 监听器 -> jp@gc - PerMon Metrics Collector

jp@gc - PerMon Metrics Collector

  • 选中 jp@gc - PerMon Metrics Collector ->
    在Servers to Monitor (ServerAgent must be started,see help) 栏目中添加服务器信息

在Servers to Monitor (ServerAgent must be started,see help)

  • 启动运行

image
监控服务器端CPU、内存、网络I/O、磁盘I/O信息

参考资料